package db;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

import javax.swing.JCheckBox;

import laguntzaileak.Aukeratutakoak;

public class LekuaKud {

	public static void sartu(Aukeratutakoak aukeratuta) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String izena = aukeratuta.getIzena();
		String herria = aukeratuta.getHerria();

		String k = "INSERT INTO Lekua(herria,izena) VALUES ('"

		+ herria + "','" + izena + "')";

		dbk.execSQL(k);

	}

	public static void sartuBadago(Aukeratutakoak aukeratuta) {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String izena = aukeratuta.getIzena();
		String herria = aukeratuta.getHerria();
		int lekua = lortulekua(herria, izena);
		int i = 1, zenbakia = 0;
		JCheckBox chek;
		while (aukeratuta.getBarietatecheck().size() >= i) {
			chek = aukeratuta.getBarietatecheck().elementAt(i - 1);
			String barietatea = chek.getText();
			zenbakia = BarietateaKud.lortuId(barietatea);
			String h = "INSERT INTO Badago(idlekua,barietateid) VALUES ('"

			+ lekua + "','" + zenbakia + "')";

			dbk.execSQL(h);
			i = i + 1;
		}
	}

	public static int lortulekua(String herria, String izena) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT idlekua FROM Lekua WHERE herria= '" + herria
				+ "' and izena= '" + izena + "'  ";
		ResultSet rs = dbk.execSQL(k);
		int emaitza = 0;
		try {
			if (rs.next()) {
				emaitza = rs.getInt("idlekua");

			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
		return emaitza;
	}

	public static ResultSet lortuLekuak() {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Lekua ";
		ResultSet rs = dbk.execSQL(k);
		return rs;
	}

	public static ResultSet kargatu() {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Lekua";
		ResultSet rs = dbk.execSQL(k);
		return rs;
	}

	public static void ezabatu(int id) {

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();

		String k = " DELETE FROM Lekua WHERE idLekua= '" + id + "' ";

		dbk.execSQL(k);

	}

	public static void aldatuBadago(Aukeratutakoak aukeratutakoa) {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String izena = aukeratutakoa.getIzena();
		String herria = aukeratutakoa.getHerria();
		int emaitza = lortulekua(herria, izena);
		String k1 = " DELETE FROM Badago WHERE idlekua= '" + emaitza + "' ";
		ResultSet rs = dbk.execSQL(k1);
		int i = 1, zenbakia = 0;

		JCheckBox chek;
		while (aukeratutakoa.getBarietatecheck().size() >= i) {
			chek = aukeratutakoa.getBarietatecheck().elementAt(i - 1);
			String barietatea = chek.getText();
			zenbakia = BarietateaKud.lortuId(barietatea);
	// FIXME: Begi
			String h = "INSERT INTO Badago(idlekua,barietateid) VALUES ('"

			+ emaitza + "','" + zenbakia + "')";

			dbk.execSQL(h);
			i = i + 1;
		}

	}

	public static int izenaEtaHerriaKonprobatu(String herria, String izena) {

		int emaitza = 0;

		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT * FROM Lekua WHERE herria= '" + herria
				+ "' and izena= '" + izena + "'  ";
		ResultSet rs = dbk.execSQL(k);
		try {
			if (rs.next()) {
				emaitza = rs.getRow();
			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
		return emaitza;
	}

	public static int herriaidlortu(String herria, String izena) {

		int id = 0;
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "SELECT idlekua FROM Lekua WHERE herria= '" + herria
				+ "' and izena= '" + izena + "' ";
		ResultSet rs = dbk.execSQL(k);
		try {
			if (rs.next()) {
				id = rs.getInt("idlekua");

			}
		} catch (SQLException e) {

			e.printStackTrace();
		}

		return id;
	}

	public static Vector<String> lortuLekua(int i) {
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		Vector<String> buelta = new Vector<String>();
		boolean urten = false;
		int emaitza = 0;
		String herria = null, izena = null;
		String k1 = " SELECT * FROM Lekua ";
		ResultSet rs = dbk.execSQL(k1);

		try {
			while (rs.next() && urten == false) {
				emaitza = rs.getRow();

				if (emaitza == i) {

					urten = true;
					herria = rs.getString(1);
					izena = rs.getString(2);
					buelta.add(0, herria);
					buelta.add(1, izena);
				}

			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
		return buelta;
	}

	public static Vector<Integer> lortuBarietateaukeratuak(int id) {

		Vector<Integer> emaitza = new Vector<Integer>();
		DBKudeatzailea dbk = DBKudeatzailea.getInstantzia();
		String k = "Select * from Badago Where idlekua= '" + id + "' ";
		ResultSet rs = dbk.execSQL(k);
		int bar = 0, i = 0;
		try {
			while (rs.next()) {
				bar = rs.getInt("barietateid");
				emaitza.add(i, bar);
				i = i + 1;
			}
		} catch (SQLException e) {

			e.printStackTrace();
		}
		return emaitza;
	}
}
